package com.rent.writeoff.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 银行收款记录表
 */
@Data
@TableName("bank_receipt")
@ApiModel(value = "银行收款记录", description = "存储客户打款信息的实体类")
public class BankReceipt {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键ID", example = "1")
    private Long id;

    /**
     * 付款账户名称（关联承租人名称）
     */
    @TableField("pay_account_name")
    @ApiModelProperty(value = "付款账户名称", example = "北京XX有限公司", required = true)
    private String payAccountName;

    /**
     * 付款银行名称
     */
    @TableField("pay_bank_name")
    @ApiModelProperty(value = "付款银行名称", example = "中国工商银行北京分行")
    private String payBankName;

    /**
     * 付款卡号
     */
    @TableField("pay_card_no")
    @ApiModelProperty(value = "付款卡号", example = "6222********1234")
    private String payCardNo;

    /**
     * 付款总金额
     */
    @TableField("pay_amount")
    @ApiModelProperty(value = "付款总金额(原始收款金额)", example = "10000.00", required = true)
    private BigDecimal payAmount;

    /**
     * 付款日期
     */
    @TableField("pay_date")
    @ApiModelProperty(value = "付款日期", example = "2025-10-20", required = true)
    private LocalDate payDate;

    /**
     * 付款时间
     */
    @TableField("pay_time")
    @ApiModelProperty(value = "付款时间", example = "09:30:00", required = true)
    private LocalTime payTime;

    /**
     * 已使用金额
     */
    @TableField("used_amount")
    @ApiModelProperty(value = "已使用金额(已核销的部分)", example = "5000.00")
    private BigDecimal usedAmount;

    /**
     * 使用状态（0-未使用，1-已使用，2-部分使用）
     */
    @TableField("use_status")
    @ApiModelProperty(value = "使用状态", notes = "0-未使用，1-已使用，2-部分使用", example = "0")
    private Integer useStatus;

    /**
     * 记录创建时间
     */
    @TableField("create_time")
    @ApiModelProperty(value = "记录创建时间", example = "2025-10-20 09:30:00")
    private LocalDateTime createTime;
}
